package com.example.sandbox.controller.order.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Digits;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * @Author Lierbao
 * @Date 2024/6/14 11:05
 */

@Data
@ApiModel("巴西支付下单请求")
public class BrazilOrderRequest extends DownStreamAbstractMchAppRQ {

    @NotBlank(message = "Merchant order number cannot be empty") // 商户订单号 不能为空
    @Size(min = 1, max = 35, message = "The length of the merchant order number is 1-35") // 商户订单号长度为 20～30
    @ApiModelProperty("商户订单号")
    private String mchOrderNo;

    @NotBlank(message = "The payment amount cannot be empty") // 支付金额 不能为空
    @Min(value = 0, message = "Minimum amount 0") // 金额最小0
    @Digits(integer = 10, fraction = 2,
            message = "The upper limit of integers is 10 digits, and the upper limit of decimals is 2 digits")
    // 整数上限为10位，小数上限位2位
    @ApiModelProperty("支付金额")
    private String amount;

    @NotBlank(message = "The product title cannot be empty") // 商品标题 不能为空
    @ApiModelProperty("商品标题")
    private String subject;

    @NotBlank(message = "Product description cannot be empty") // 商品描述 不能为空
    @ApiModelProperty("商品描述")
    private String body;

    @ApiModelProperty("异步通知地址 支付结果异步回调URL,只有传了该值才会发起回调")
    private String notifyUrl;

    /**
     * 货币代码
     **/
    @NotBlank(message = "Currency code cannot be empty")
    private String currency;

    // // ================= Gbpsd 新增 =================
    //
    // @ApiModelProperty("跳转通知地址 支付成功跳转URL")
    // private String returnUrl;
    //
    /**
     * 金额 CPF号 106001支付类型可选传递CPF号或不传递，如传递CPF号则必须为真实CPF，固定或者乱填将会支付失败。106002支付类型需要必填CPF号
     */
//    @NotBlank(message = "debtorName cannot be empty")
    @ApiModelProperty("debtorName")
    private String debtorName;

    /**
     * 案例:zhang san(必须是字母),如没有可以固定上传
     */
//    @NotBlank(message = "debtorDocumentNumber cannot be empty") // 商品描述 不能为空
    @ApiModelProperty("Debtor's CPF Payer's CPF ")
    private String debtorDocumentNumber;

    // /**
    // * 案例:test@gmail.com(需要符合邮箱格式),如没有可以固定上传
    // */
    //// @NotBlank(message = "email cannot be empty")//商品描述 不能为空
    // @ApiModelProperty("email")
    // private String email;
    //
    // /**
    // * 手机号 纯数字,不需要添加区号
    // */
    //// @NotBlank(message = "phone cannot be empty")//商品描述 不能为空
    // @ApiModelProperty("手机号")
    // private String phone;

    /**
     * 是否需要扩展参数
     * 0是不传url。1是传url ，选填默认0
     */
    @ApiModelProperty("是否需要扩展参数")
    private Integer needExtParam;


}
